
                 Splendid Ogg's Cracking Tutorial 03 - NICE 2 (ComputerBILD Spiele)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Inhalt
~~~~~~~~~~~~~~~~~~~~~~~~~

1) Vorwort
2) Was wir brauchen
3) Cracken
4) Cheaten
5) Schlusswort

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1) Vorwort
~~~~~~~~~~~~~~~~~~~~~~~~~

Ich heie dich zu meinem dritten Tutorial herzlichst willkommen! Vorhin habe ich mir die Computer-
BILD Spiele 4/2001 gekauft. Jetzt denk nicht, ich sei so einer, der die Zeitschrift gerne liest! *g*
Ich hab mir die Ausgabe blo wegen NICE 2 gekauft, und damit du auch was davon hast, schreibe ich
noch am selben Tag ein Tutorial.
Da es eine beraus leichte bung ist, NICE 2 zu cracken, richte ich dieses Tutorial auch an verzwei-
felte Newbies.
brigens mchte ich Peacemaker bitten, nicht noch einmal eins meiner Tutorials zu plagiieren oder
als inhaltliche Grundlage zu verwenden.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2) Was wir brauchen
~~~~~~~~~~~~~~~~~~~~~~~~~

 - Win32Disassembler (W32Dasm) .................. http://move.to/tgc/
 - HIEW 6.xx .................................... http://www.crackstore.com/
 - MemHack 1.2 (zum Cheaten) .................... http://www.cheat-it.com/
 - NICE 2 (am besten die CBS-Version!) .......... Kiosk

Damit wir NICE 2 ohne CD spielen knnen, solltest du bei der Installation die Maximal-Variante (382
Megabyte) whlen.
MemHack brauchst du nur fr Teil 4 dieses Tutorials. Wenn du wissen willst, wie man MemHack crackt,
dann lies mein erstes Tut (solltest du auf http://move.to/tgc/ bekommen).

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

3) Cracken
~~~~~~~~~~~~~~~~~~~~~~~~~

Wir wollen in diesem Tutorial die Standard-Version von NICE 2 cracken. Es gibt auch eine sogenannte
Lite-Version. Am Ende dieses Abschnitts wirst du diese aber selbst cracken knnen, da das ganz ge-
nauso geht.
Die EXE-Datei der Standard-Version ist die Datei N2_STD.EXE. Die starten wir einfach einmal, ohne
eine CD eingelegt zu haben. Folgende Meldung erscheint: "Achtung !", "Bitte legen Sie die
NICE2-CDRom in ihr CDRom-Laufwerk!"
Die berschrift "Achtung !" habe ich bewusst mit erwhnt, die solltest du dir ebenfalls merken.
Jetzt erstellen wir eine Sicherungskopie der EXE-Datei ("Kopie von n2_std.exe"), indem wir sie im
Windows Explorer anklicken, STRG+C und dann STRG+V drcken. Jetzt starten wir den Disassembler
W32Dasm. Zur Erklrung: Jede Programmiersprache wird beim Kompilieren in Assembler bersetzt.
Assembler ist die einzige Sprache, die der Computer versteht und besteht nur aus Zahlencodes. Der
Disassembler wandelt diese Zahlencodes in Textbefehle um und gibt uns noch einige weitere Informa-
tionen, zum Beispiel, welche Systemfunktionen genutzt werden und was fr Zeichenketten im Programm
benutzt werden. Da uns somit der Programmcode offen liegt, knnen wir nach der Stelle suchen, an der
geprft wird, ob eine CD eingelegt ist oder nicht und die Befehle so verndern, dass es dem Programm
fortan egal ist.
Also, nachdem der Disassembler gestartet ist, klicken wir auf "Disassembler" oben links und dann auf
den Eintrag "Open File to Disassemble...". Im erscheinenden Dialog wechseln wir in den NICE-2-Ordner
und whlen die Datei KOPIE VON N2_STD.EXE aus. Nach ein paar Sekunden sollte das Programm fertig
disassembled sein. Wenn du jetzt nur irgendwelche verwirrenden Zeichen siehst, liegt das wohl daran,
dass du den falschen Schrifttyp eingestellt hast. Das lsst sich einfach lsen: Klicke im "Disassem-
bler"-Men auf den Eintrag "Font... >" und dann auf "Select Font". Im Schriftarten-Dialog kannst du
dann eine neue Type auswhlen - ich empfehle dir die Schrift Courier New.
Damit wir nach der Meldung, die beim Start vorhin erschien, suchen knnen, mssen wir im "Refs"-Men
auf den Eintrag "String Data References" klicken. Es erscheint ein Dialog, in dem W32Dasm alle Zei-
chenketten auflistet, die gefunden werden konnten. Leider sind dies meist nicht alle, da Verschls-
selung und andere Verschleierungstechniken den Programmierern nicht unbedingt fremd sind. Und siehe
da: Den Eintrag "Bitte legen Sie..." gibt es auch nicht. Deshalb solltest du dir auch die ber-
schrift der Messagebox ("Achtung !") merken - die finden wir ohne Probleme. Ein Doppelklick darauf
befrdert uns an die Stelle im Programm, an der diese Zeichenkette in den Speicher geladen wird. Ein
weiterer Doppelklick besttigt uns, dass dies nur einmal im Programm passiert. So, an folgender
Stelle befinden wir uns nun:


* Reference To: KERNEL32.FindFirstFileA, Ord:0082h
                                  |
:00414D37 8B1D1C115600            mov ebx, dword ptr [0056111C]
:00414D3D 8D442410                lea eax, dword ptr [esp+10]
:00414D41 83E103                  and ecx, 00000003
:00414D44 50                      push eax
:00414D45 52                      push edx
:00414D46 F3                      repz
:00414D47 A4                      movsb
:00414D48 FFD3                    call ebx
:00414D4A 83F8FF                  cmp eax, FFFFFFFF             // Gab es einen Fehler?
:00414D4D 7541                    jne 00414D90                  // Wenn nicht, dann springe weg!

* Reference To: USER32.ShowCursor, Ord:0229h
                                  |
:00414D4F 8B3DCC115600            mov edi, dword ptr [005611CC]

* Reference To: USER32.MessageBoxA, Ord:0195h
                                  |
:00414D55 8B2D08125600            mov ebp, dword ptr [00561208]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00414D8E(C)
|
:00414D5B 6A01                    push 00000001
:00414D5D FFD7                    call edi
:00414D5F 8B0D08626400            mov ecx, dword ptr [00646208]
:00414D65 6A05                    push 00000005

* Possible StringData Ref from Data Obj ->"Achtung !"
                                  |
:00414D67 6874B55700              push 0057B574                 // Hier wird der String geladen
:00414D6C 6838B55700              push 0057B538
:00414D71 51                      push ecx
:00414D72 FFD5                    call ebp
:00414D74 6A00                    push 00000000
:00414D76 8BF0                    mov esi, eax
:00414D78 FFD7                    call edi
:00414D7A 83FE02                  cmp esi, 00000002
:00414D7D 744E                    je 00414DCD
:00414D7F 8D542410                lea edx, dword ptr [esp+10]
:00414D83 52                      push edx
:00414D84 6800616400              push 00646100
:00414D89 FFD3                    call ebx
:00414D8B 83F8FF                  cmp eax, FFFFFFFF
:00414D8E 74CB                    je 00414D5B

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00414D4D(C)
|
:00414D90 50                      push eax                      // Hier luft NICE 2 normal weiter


Kurze Erluterung: Der ASM-Befehl (ASM ist die Abkrzung fr Assembler) cmp vergleicht etwas mit et-
was anderem (engl. to compare). Der Befehl jne springt, wenn das, was vorher verglichen wurde, nicht
gleich ist (engl. jump if not equal). Bei eax handelt es sich um ein Prozessor-Register, also einen
Speicherplatz auf dem Prozessor. In der Zeile cmp eax, FFFFFFFF wird das Register mit dem Wert
FFFFFFFF verglichen. Sind sie gleich, gab es einen Fehler, und die Zeilen mit der Messagebox werden
ausgefhrt, da ja eax und FFFFFFFF nicht ungleich sind. Wenn es keinen Fehler gab, also die CD-ROM
eingelegt ist, dann ist eax ungleich FFFFFFFF und der Sprung zum weiteren Programmverlauf wird aus-
gefhrt. Unser Ziel ist daher folgendes: Wir wollen, dass der Sprung immer ausgefhrt wird, egal, ob
nun die CD eingelegt ist oder nicht. Deshalb mssen wir mit dem Hexeditor HIEW diese Stelle im Pro-
gramm verndern. Damit wir wissen, welche genau, stellen wir in W32Dasm den farbigen Balken auf die
Zeile 414D4D. Ganz unten in der Statusleiste lesen wir dann "... @Offset 0001414Dh ...". Wir starten
HIEW und ffnen die Datei N2_STD.EXE. Um in die Assembler-Ansicht zu gelangen, drcken wir F4 und
dann F3. Jetzt drcken wir F5 und geben das Offset ein, dass wir eben in der W32Dasm-Statusleiste
gelesen haben. Wir knnen dabei die Nullen am Anfang und das "h" am Ende wegfallen lassen. ENTER
bringt uns dann zum jne. Jetzt drcken wir F3, damit wir die nderung vornehmen knnen, und ber-
schreiben die "75" mit "EB". 75 ist der Zahlencode fr "springe wenn nicht gleich" (jne) und EB der
Code fr "springe immer" (jmp). Ab sofort springt das Programm also immer von der Fehlermeldung weg.
Damit diese nderung bernommen wird, drcken wir F9 und dann F10, um HIEW zu schlieen.
NICE 2 ist jetzt gecrackt - du kannst es ja gleich einmal ausprobieren!
Nun solltest du versuchen, die Lite-Version zu cracken; im Prinzip funktoniert es genauso, nur die
Offsets sind andere.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

4) Cheaten
~~~~~~~~~~~~~~~~~~~~~~~~~

Das hier ist im Grunde ja schon ein Tutorial fr sich, also gibt es hier ein 2-in-1-Superpaket! *g*
Ich mchte dir kurz erklren, wie man fr ausreichend Geld bei NICE 2 sorgen kann.
Zuerst mssen wir das Spiel starten, den Meisterschaftsmodus auswhlen und einen Sponsorenvertrag
abschlieen. Bevor wir ein Auto kaufen, merken wir uns unseren aktuellen Kontostand. Wir drcken nun
ALT + TAB. um zurck zu Windows zu gelangen, starten MemHack und whlen in der Prozessliste rechts
den Eintrag "NICE2 - Drive for your life !" aus. Im Feld "Akt. Leben" geben wir den Kontostand ein
und klicken auf "Suchen". Nach Abschluss der Suche wurden mehrere Tausend Adressen gefunden - jetzt
mssen wir in NICE 2 den Kontostand verndern, indem wir ein Auto kaufen. In MemHack mssen wir dann
den neuen Kontostand eingeben und dann (ganz wichtig!) auf "Aussieben" klicken. Bei mir bleibt nur
noch eine Speicheradresse brig, und an der ist der Kontostand abgespeichert. Sollten bei dir noch
mehrere Adressen brig bleiben, musst du, zum Beispiel im Tune-up-Shop, noch mehr Geld ausgeben und
die brigen Speicheradressen mit dem neuen Geldbetrag aussieben, und das so lange wiederholen, bis
nur noch eine Adresse in Frage kommt.
Danach mssen wir auf "bernehmen" klicken und einen Namen (z. B. "Geld") und einen Wert (ich nehme
9999999) eingeben. Ein Klick auf "Aus" in der Spalte "Freezer" und das Drcken des Buttons "Freezer
ist aus" sorgen dafr, dass man dauerhaft von Geldsorgen befreit ist!
Leider ndert sich die Speicheradresse des Geldes bei jedem Neustart von NICE 2, deshalb kann man
auch keinen selbstndigen Trainer erstellen.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

5) Schlusswort
~~~~~~~~~~~~~~~~~~~~~~~~~

Ich hoffe, es hat dir Spa gemacht und du hast bei diesem Tutorial etwas gelernt. Wenn du Lob oder
Kritik (inklusive Verbesserungsvorschlgen) hast, mail mir: splendid.ogg.TGC@gmx.net

Ich habe brigens ganz bewusst keinen Crack zu dem Tut released, da die meisten wohl die CBS-Version
im Original haben.

Gre gehen an |VerTex|, Digital fol und alle Kollegen von TGC!


Splendid Ogg

splendid.ogg.TGC@gmx.net